import { StringOrNull } from '../Types';
import { IValidator } from './IValidator';


/**
 * 根据指定正则表达式验证字符串
 * 
 * 1. 字符串为 null 时 返回 false
 * 2. 正则匹配失败时 返回 false
 */
export class RegularExpressionValidator implements IValidator<StringOrNull> {
    private regex: RegExp;
    constructor(expression: string) {
        this.regex = new RegExp(expression);
    }
    public IsValid(input: StringOrNull): boolean {
        if (!input) {
            return false;
        }
        return this.regex.test(input);
    }
}